// 基数数据类型
// 字符串
let string:string = "德玛西亚" 
// string = 123 错误写法 不能写成除了字符串外的其他任意类型
// 数字
let number:number = 123.1221
// number = "德玛西亚" ts数据类型在定义完成后不能用其他类型覆盖
// 布尔值
let bool:boolean = true
// bool = 0
let und:undefined = undefined;
// und = true
let nu:null = null
// 数组
let arr:number[] = [1, 2, 3, 4, 5]
let arr2:Array<string> = ['1', '2', '3', '4']
// let arr3:[string, number, boolean] = [true, 1, '123'] 错误 写法
// 元祖类型 tuple
let arr3:[string, number, boolean] = ['德玛西亚', 123, true]
// void 表示没有类型 
// function fn():void {}
// function fn2():string {
//     return '德玛西亚'
// }

// fn2()
// any类型 表示任意类型
// let str2:any = 123 
// str2 = '123'
// str2 = true
// object
// let obj = {
//     name:string,
//     number:number
// }
// obj.name = '1243'
// never 表示从来不会出现的类型
// function show():never {
//     throw new Error('这是一个错误')
// }

// show()

let tuple:[number, string] = [123, '123']
// let numArr:Array<number> = [1, 2, 3, 4]

function changeArr<T>(arg1:T, arg2:T, arg3:T):Array<T> {
    let result:T[] = []
    result = result.concat(arg1, arg2, arg3)
    return result
}
console.log(changeArr<string>('1', '2', '3'))
console.log(changeArr<number>(1,2,3))





